home *** CD-ROM | disk | FTP | other *** search
- " -------------------------------------------------------------------- "
- " TrackDisk Class allows the user low-level (device) access to any "
- " floppy drives attached to their system (DF0: through DF3:). "
- ""
- " WARNING: You should know what you're doing to the Amiga OS before "
- " messing with this Class, or any other System Class! "
- " ---------------------------------------------------------------------"
- " The following methods are commented out, because turnMotorOff
- hangs up my system (JTS).
- |
- turnMotorOn
- ^ <primitive 229 17 address>
- |
- turnMotorOff
- ^ <primitive 229 18 address>
- "
- " ---------------------------------------------------------------------"
-
- Class TrackDisk :Device ! address diskName trkNumber !
- [
- ejectDisk "Won't do anything for most Amigas!"
- ^ <primitive 229 16 address>
- |
- formatTrack: trackNumber data: theDataBytes
- "DANGER! DANGER, Will Robinson!"
- trkNumber <- trackNumber.
- ^ <primitive 229 19 theDataBytes trackNumber address>
- |
- readRawData: trackNumber
- trkNumber <- trackNumber.
- ^ <primitive 229 20 trackNumber address>
- |
- writeRawData: rawDataBytes track: trackNumber
- trkNumber <- trackNumber.
- ^ <primitive 229 21 rawDataBytes trackNumber address>.
- |
- clearReadBuffer
- <primitive 229 4 address>
- |
- setSyncType: newSyncType
- <primitive 229 5 newSyncType address>
- |
- getErrorString
- ^ <primitive 229 8 address>
- |
- getSectorSize
- ^ <primitive 229 12 address>
- |
- getTrackSize
- ^ <primitive 229 10 address>
- |
- getDeviceType
- ^ <primitive 229 9 address>
- |
- getDriveType
- "1 = 3.5in, 2 = 5.25in, 3 = 3.5in spinning at 150 RPM."
- ^ <primitive 229 11 address>
- |
- displayDriveType ! type !
- type <- self getDriveType.
- (type == 1)
- ifTrue: ['3-1/2" Floppy Disk.' print]
- ifFalse: [(type == 2)
- ifTrue: ['5-1/4" Floppy Disk.' print]
- ifFalse: ['3-1/2" Floppy spinning at 150 RPM' print]
- ]
- |
- getNumberOfTracks
- ^ <primitive 229 13 address>
- |
- getTotalSectors
- ^ <primitive 229 14 address>
- |
- getTotalSize ! secsize numsecs !
- numsecs <- self getTotalSectors.
- secsize <- self getSectorSize.
-
- ^ numsecs * secsize
- |
- seekTrack: trackNumber
- trkNumber <- trackNumber.
- ^ <primitive 229 15 trackNumber address>
- |
- isDiskPresent
- ^ <primitive 229 6 address>
- |
- isWriteProtected
- ^ <primitive 229 7 address>
- |
- readTrack: trackNumber
- trkNumber <- trackNumber.
- ^ <primitive 229 2 trackNumber address>
-
- |
- writeTrack: dataBytesOut track: trackNumber
- trkNumber <- trackNumber.
- ^ <primitive 229 3 dataBytesOut trackNumber address>
- |
- displayBytes: byteArray ! size wTitle !
- size <- self getTrackSize.
- wTitle <- String new.
- wTitle <- 'displayBytes - size = ',(size asString),' Track #: ', (trkNumber asString).
- <primitive 229 22 byteArray wTitle>
- |
- new: newDiskName
- address <- <primitive 229 23 newDiskName>.
- diskName <- newDiskName.
- ^ self
- |
- open: newUnitNumber
- <primitive 229 1 newUnitNumber address>
- |
- close
- <primitive 229 0 address>.
- address <- nil "NO TURNING BACK FROM HERE!"
- ]
-